package com.orphan.marketFront.service;


import com.orphan.marketFront.po.ShippingAddress;
import com.orphan.util.dto.ShippingAddressDto;

import java.util.List;

public interface IShippingAddressService {

    /**
     * 根据用户ID查询用户所有收货地址
     * @param userId 用户ID
     * @return 收货地址集合
     */
    List<ShippingAddressDto> selectShippingAddress(Integer userId);

    /**
     * 新增收货地址
     * @param shippingAddressDto 要新增的收货地址
     * @return 几行受影响
     */
    Boolean insertShippingAddress(ShippingAddressDto shippingAddressDto);

    /**
     * 根据收货地址ID删除收货地址
     * @param addressId 收货地址ID
     * @return 几行受影响
     */
    Boolean deleteShippingAddressById(String addressId);

    /**
     * 修改收货地址
     * @param shippingAddressDto 修改后的收货地址
     * @return 几行受影响
     */
    Boolean updateShippingAddress(ShippingAddressDto shippingAddressDto);

    /**
     * 根据用户ID查询默认收货地址
     * @param userId 用户ID
     * @return 默认收货地址
     */
    ShippingAddress selectDefaultShippingAddress(Integer userId);

    /**
     * 修改默认收货地址
     * @param shippingAddressDto 新的默认收货地址
     * @return 修改是否成功
     */
    Boolean updateDefaultAddress(ShippingAddressDto shippingAddressDto);
}
